package cn.ven.mapper;

import cn.ven.entity.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface BookMapper {
    public List<Book> findAll();//查找所有的书本
    public Book findById(Integer id);//根据id查找对应的书本
    public List<Book> findByPage(Map<String,Object> map);//分页查询
    public void addBook(Book book);//添加书本
    public  void updateBook(Book book);//更新书本
    public int getCount(Integer typeid);//获取总条数
    public List<Book> findIf(Map<String,Object> map);//模糊查询
    public int getCountIf(@Param("key")String key);//模糊查询结果总条数
    public void addRate(@Param("id")Integer id,
                        @Param("rate")Integer rate);//点赞加1
    public List<Book> findRate5();//点赞前五的商品
    public List<Book> findFav5();//加入到购物车前五的商品
    public List<Book> findSale5();//销售量前五的商品
    public List<Book> findBookByPageRate(@Param("typeid")Integer typeid,
                                         @Param("start")Integer start,
                                         @Param("num")Integer num);//根据点赞数排序，且可以按照分页和类型查找
    public List<Book> findBookByPageSale(@Param("typeid")Integer typeid,
                                         @Param("start")Integer start,
                                         @Param("num")Integer num);//根据销售数排序，且可以按照分页和类型查找
    public List<Book> findBookByPageFav(@Param("typeid")Integer typeid,
                                         @Param("start")Integer start,
                                         @Param("num")Integer num);//根据喜欢数排序，且可以按照分页和类型查找

}
